home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / PIDENTD-.{1R / DOC / WHY-TAP.TXT < prev   
Text File  |  1999-09-17  |  6KB  |  128 lines

  1. ``Why TAP?'' A White Paper
  2. Daniel J. Bernstein
  3. draft 3
  4. 920820
  5.  
  6.  
  7. 1. Introduction
  8.  
  9. Hundreds of hosts around the Internet run TAP servers. If there's a TCP
  10. connection from one of those hosts, say host H, to host Z, then host Z
  11. can use TAP to find out certain information from H about the connection.
  12. That's all the protocol does.
  13.  
  14. What's the information? That's up to H. A typical TAP server runs on a
  15. multi-user host and announces the username on that host's side of the
  16. connection. Some hosts use the protocol to announce other kinds of
  17. information. And a few hosts run a server but don't announce any useful
  18. information at all.
  19.  
  20. The purpose of this white paper is to show the reader two ways in which
  21. TAP is useful (and used!) in today's Internet: remote auditing and
  22. selective blocking. These applications work even though _you can't tell
  23. the difference_ between the different types of TAP servers mentioned
  24. above on a network of hosts you don't know---between a server which
  25. tries to be honest and a server which lies through its teeth.
  26.  
  27. It is occasionally stated that TAP is useless on the Internet as a
  28. whole, or that it is useful in stopping attacks only because attackers
  29. (supposedly) don't know about it, or that it provides no ``real''
  30. security at all. These criticisms are usually justified by repetition
  31. rather than by a proper security analysis. At their heart they are based
  32. on the assumption that a host running a TAP server is trying to benefit
  33. the rest of the community. In fact the benefits of a TAP server _accrue
  34. to the host running the server_. This theme will show up again in the
  35. examples below.
  36.  
  37.  
  38. 2. Remote auditing
  39.  
  40. Say you manage a large computer, often supporting dozens of simultaneous
  41. users. One day you are informed of a series of network attacks emanating
  42. from your machine, by a very serious security officer who sounds ready
  43. to call the Secret Service. What do you do?
  44.  
  45. If your machine has extraordinarily powerful logging facilities, perhaps
  46. you can figure out who was using the network at a given time. TAP
  47. provides a simpler solution: _remote auditing_. If you run a TAP server,
  48. then remote sites can find out which of your users was responsible for
  49. any given TCP connection (unless, of course, your machine has been
  50. compromised, in which case you have bigger problems). A remote site is
  51. probably better equipped to decide whether a connection from your
  52. machine is or is not a security problem, and can decide for itself what
  53. to do with the TAP data.
  54.  
  55. You may not want to give away free information about your users. You may
  56. also want to verify, without having to keep your own logs, that the guy
  57. on the other end is telling the truth about what he heard from your TAP
  58. server. An easy solution to both problems is to encrypt your usernames
  59. (along with a timestamp, perhaps, though this defeats the selective
  60. blocking application outlined in the next section) in a secret key.
  61.  
  62. Of course the scenario outlined above is a worst case. Less serious
  63. cases in which remote auditing is useful include mail forgery via SMTP
  64. and news forgery via NNTP. Or perhaps your host is the TCP Toaster, and
  65. you want an easy way to track down malfunctions. In all of these cases
  66. TAP at least removes the minor nuisances which constitute 99% of all
  67. network problems. In particular, it completely stops the problem of
  68. above-TCP mail forgery: anyone can send an anonymous message (through
  69. the post office if all else fails!), but, with TAP, normal users on your
  70. machine can't send messages which look like they came from other users.
  71.  
  72. Notice that the benefit of running a TAP server comes right back to you.
  73. Certainly the security officer on the other end can't tell whether your
  74. TAP server is providing useful information---but if you are running a
  75. valid TAP server then you can assign blame properly. If you run a TAP
  76. server which provides useless information then you don't get this
  77. benefit.
  78.  
  79.  
  80. 3. Selective blocking
  81.  
  82. Now say you're that serious security officer, and you see someone
  83. attacking your machine. If your data is at stake then your first
  84. instinct may be to cut off service to the remote host while you track
  85. down the proper administrator. But what if you are providing valuable
  86. services to that host at the same time? Or, less dramatically, what if
  87. you want to keep an anonymous ftp archive as open as possible but find
  88. that someone is abusing your FTP server?
  89.  
  90. You could cut off all access from any host until the problem is fixed.
  91. You could simply cut off service to the remote host and watch to make
  92. sure that the attacker doesn't start using another host. Or---if the
  93. remote host runs TAP---you can cut off the one userid causing trouble,
  94. and watch to make sure that other identifiers don't start attacking.
  95. This is _selective blocking_. The more selectivity your software
  96. provides, the more options you have.
  97.  
  98. Notice that, once again, the benefit of a TAP server comes back to the
  99. host running the server. If the guy on the other end is running an
  100. honest TAP server, he's giving you the option of being nice to him---of
  101. keeping service open to most of his users even if one user is attacking.
  102. If he runs a useless TAP server then he doesn't get this benefit.
  103.  
  104.  
  105. 4. Pointers to further information
  106.  
  107. Everything mentioned here has been implemented. A recent BSD TAP server
  108. implementation, along with support for sendmail to catch forgeries, is
  109. available from ftp.lysator.liu.se:pub/tap. You can implement selective
  110. blocking with log_tcp, available from ftp.win.tue.nl. You can add TAP
  111. to BSD talkd from gatekeeper.dec.com:pub/bsd-sources/src/network/talk.tar.Z
  112. with wuarchive.wustl.edu:usenet/alt.sources/articles/2687.Z. nntpd
  113. support is in wuarchive.wustl.edu:usenet/alt.sources/articles/2746.Z.
  114. ftpd support is in wuarchive.wustl.edu:packages/ftpd.wuarchive.shar. For
  115. IRC support see cs.bu.edu:pub/irc/servers.
  116.  
  117. There's a mailing list, rfc931-users, for people who want to use RFC 931
  118. (and its variants, including TAP) to solve problems. To join, contact
  119. rfc931-users-request@kramden.acf.nyu.edu. rfc931-users maintains a list
  120. of known server hosts, as well as current information on implementations
  121. and other useful items.
  122.  
  123. In June 1992, approximately one out of every 7000 packets across the
  124. NSFNET T1 backbone was for port 113, the TAP port; only thirty named
  125. ports had higher packet counts. This information comes from
  126. nic.merit.edu:nsfnet/statistics/1992/t1-9206.ports.
  127.  
  128.